﻿//获取所有id名称的元素节点对象
function $(id) {
    return document.getElementById(id);
}

//正则对象
var regs={
    username:/^[\u4e00-\u9fa5]{2,5}/,
    class:/^[\u4e00-\u9fa5]+\d{3,4}/,
    phone:/^[1](3|5|8)\d{9}$/
}

window.onload = function () {

    var oUserName = $('username');
    var oGender = $('gender');
    var oClass = $('class');
    var oPhone = $('phone');
    var oGroup = $('majorGroup');
    var oIntroduction = $('introduction');
    var oSend =$('send');
    var oP =document.getElementsByTagName('p');

    //获焦事件、失焦事件、按键抬起事件共同执行一个事件处理程序
    oUserName.onfocus=oUserName.onblur=oUserName.onkeyup=function (e) {
        var _event = window.event||e; //事件对象的兼容写法
        checkUserName(_event); //调用检查用户名的函数
    }
    /*检测用户名*/
    function checkUserName(_e) {
        var type;//e.type返回值可以判断事件类型  ,定义var type 为undefined 区分开  事件对象处理程序  以及单纯事件触发的处理程序
        if(_e){
            type = _e.type;//判断事件类型，并赋值给type
        }

        var val=oUserName.value;
        var ulen=val.length;
        //相同对象的事件执行不同的事件处理函数时，后面执行的效果会覆盖之前，hack：将函数写return;
        if(type=="focus"){
            oP[0].className='gray';
            oP[0].innerHTML='请输入2~5个汉字';
            return false;//返回值 停止当前函数 并给函数返回false
        }
        if(type=="blur"){//失焦事件所执行的内容 清空所有特殊样式
            oP[0].className='';
            oP[0].innerHTML='';
            return false;//返回值 停止当前函数 并给函数返回false
        }
        if(ulen==0){
            oP[0].className='red';
            oP[0].innerHTML='请输入用户名';
            return false;
        }else{
            if(regs.username.test(val)){
                if(ulen<4||ulen>6){
                    oP[0].className='red';
                    oP[0].innerHTML='请输入2到5位汉字';
                    return false;
                }else{
                    oP[0].className='hide';
                    return true;
                }
            }else{//不匹配时  返回格式错误
                oP[0].className='red';
                oP[0].innerHTML='格式错误，仅支持2到5位汉字';
                return false;
            }
        }
    }

    //获焦事件、失焦事件、按键抬起事件共同执行一个事件处理程序
    oClass.onfocus=oClass.onblur=oClass.onkeyup=function (e) {
        var _event = window.event||e; //事件对象的兼容写法
        checkoClass(_event); //调用检查用户名的函数
    }
    /*检测专业班级*/
    function checkoClass(_e) {
        var type;//e.type返回值可以判断事件类型  ,定义var type 为undefined 区分开  事件对象处理程序  以及单纯事件触发的处理程序
        if(_e){
            type = _e.type;//判断事件类型，并赋值给type
        }

        var val=oClass.value;
        var ulen=val.length;
        //相同对象的事件执行不同的事件处理函数时，后面执行的效果会覆盖之前，hack：将函数写return;
        if(type=="focus"){
            oP[1].className='gray';
            oP[1].innerHTML='请输入专业班级如：计算机165';
            return false;//返回值 停止当前函数 并给函数返回false
        }
        if(type=="blur"){//失焦事件所执行的内容 清空所有特殊样式
            oP[1].className='';
            oP[1].innerHTML='';
            return false;//返回值 停止当前函数 并给函数返回false
        }
        if(ulen==0){
            oP[1].className='red';
            oP[1].innerHTML='请输入专业班级';
            return false;
        }else{
            if(regs.username.test(val)){
                if(ulen<4||ulen>6){
                    oP[1].className='red';
                    oP[1].innerHTML='请输入专业班级如：计算机165';
                    return false;
                }else{
                    oP[1].className='hide';
                    return true;
                }
            }else{//不匹配时  返回格式错误
                oP[1].className='red';
                oP[1].innerHTML='格式错误，仅支持格式如：计算机165';
                return false;
            }
        }
    }


    oPhone.onfocus = oPhone.onblur=oPhone.onkeyup=function (e) {
        var _event= window.event||e;
        checkPhone(_event);
    }

    // 检查电话
    function checkPhone(_e) {
        var type;
        if(_e){
            type =_e.type;
        }
        var val=oPhone.value;
        var len=val.length;

        if(type=="focus"){
            if(len==0){
                oP[2].className='gray';
               oP[2].innerHTML='输入手机号码方便联系';
                return false;
            }
        }
        if(type=="blur"){
            if(len==0){
               oP[2].className='';
               oP[2].innerHTML='';
               return false;
            }
        }
        /*其他情况*/
        if(len==0){
           oP[2].className='red';
            oP[2].innerHTML='请输入手机号';
            return false;
        }else{
            if( regs.phone.test(val) ){
                oP[2].className='hide';
                return true;
            }else{
                oP[2].className='show';
                oP[2].className='red';
                oP[2].innerHTML='格式错误，请输入11位数字，首位是1、第二位是3或5或8';
                return false;
            }
        }
    }
    oSend.onclick=function () {
        if($('#username').val()==''||$('#gender').val()==''||$('#class').val()==''||$('#phone').val()==''||$('#majorGroup').val()==''||$('#introduction').val()==''){
            alert('信息不能位空');
        }
        $.ajax({
            type:"GET",
            url:"",
            datatype:"json",
            data:{
                username:$('#username').val(),
                gender:$('#gender').val(),
                class:$('#class').val(),
                phone:$('#phone').val(),
                majorGroup:$('#majorGroup').val(),
                introduction:$('#introduction').val()
            },
            success:function (res) {
                if(res.status){
                    alert("提交成功");
                }else{
                    alert("提交失败");
                }
            }
        })
    }
};